#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMessageBox>
#include <QTableWidget>
#include <QtWebSockets/QWebSocket>
//#include "myqheaderview.h"
#include "customtablewidgetitem.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow

{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

//    void onRowCheckBoxClicked(int row, bool checked);
    void onRowCheckBoxClicked(QTableWidget *table, int row, bool checked);// 点击复选框槽函数
    void fetchDataAndLoadTable(const QUrl &apiUrl, const QJsonDocument &jsonData, QTableWidget *table);

private slots:
    void on_pushButton_8_clicked();
    void on_pushButton_9_clicked();

    void on_pushButton_10_clicked();

    void on_pushButton_11_clicked();

    void on_pushButton_12_clicked();

    void on_pushButton_15_clicked();

    void on_pushButton_13_clicked();

    void on_pushButton_16_clicked();

//    void onItemDoubleClicked(QTableWidgetItem *item);

    void on_pushButton_18_clicked();

private:
    Ui::MainWindow *ui;
    QString ip; // 接口地址

    // 冷藏区加载函数
    void loadColdStorageData(QString location_name,QTableWidget* widget);
    void load_histroy(QTableWidget* widget);
    void load_users( QTableWidget *widget);
    // 加载解析规则表格
    void load_rule(QTableWidget *widget);
    // 加载搅拌转速表格
    void load_stir_speed(QTableWidget *widget);
    // 日志加载
    void load_log();

    // 入库
    void oneInStock();

    // 获取库存每日调整时间与无动作后调整时间
    void get_adjust_time();

    void refresh_data(); // 刷新获取全部表格数据

    QWebSocket m_webSocket; // websocket对象
    void create_websocket();
    void onWebSocketConnected();                                 // 连接槽函数
    void onWebSocketError(QAbstractSocket::SocketError error);   // 处理异常槽函数
    void onWebSocketTextMessageReceived(const QString &message); // 接收文本消息槽函数
    QVector<QString> solders; // 存储请求参数
    QTableWidget *last_table; // 用于判断是否为当前表格部件

    QTimer *reconnectTimer; // 声明定时器
    QString loadIPAddress();

    void saveIPAddress(const QString& ipAddress);


};

#endif // MAINWINDOW_H
